﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SAKS.ViewModels;
using SAKS.Models;

namespace SAKS.IServices
{
    public interface IMessageServices : IHasSession
    {
        void SendRemovedFromProjectMessage(string username, Guid projectid);
        void SendProjectJoinMessage(string username, Guid projectid,string message);
        void SendJoinRequestApproveMessage(string _to, string projectname);
        void SendJoinRequestRejectMessage(string _to, string projectname);

        void SendMessage(string _to, string _from, string _subject, string _content);
        void SendMessage(SendMessageModel model);

        void DeleteMessageReceived(Guid id);
        void DeleteMessageSent(Guid id);

        MessageReceivedForRead GetMessageReceived(Guid id);
        MessageSentForRead GetMessageSent(Guid id);

        Object[] GetMessagesRead(string userName,int start,int pageSize,out int? totalRecords);
        Object[] GetMessagesSent(string userName, int start, int pageSize, out int? totalRecords);
        Object[] GetMessagesUnRead(string userName, int start, int pageSize, out int? totalRecords);

        int GetMessagesUnReadCount(string userName);
        int GetMessagesReadCount(string userName);
        int GetMessagesSentCount(string userName);
    }
}
